
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>ES如何实现多租户隔离和安全控制？有哪些机制和策略？ - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>ES如何实现多租户隔离和安全控制？有哪些机制和策略？ - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">在Elasticsearch中，实现多租户隔离需要支持哪三个方面的隔离？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">多租户隔离需要支持三个方面的隔离：1. 数据隔离，确保不同租户的数据存储在不同索引中且彼此不可见；2. 权限隔离，严格控制不同租户对数据的访问和操作权限；3. 资源隔离，为每个租户分配特定资源以避免资源争用。</div>
          </div>
          <div class="card-source">来源: 1. 多租户隔离的概念</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">Elasticsearch如何通过角色和用户管理来实现索引级别的权限控制？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">通过为角色（Role）定义一组针对特定索引的权限（如读、写），然后将用户（User）与一个或多个角色绑定。这样，用户就能继承其所绑定角色的所有权限，从而确保租户用户只能访问其被授权的索引。</div>
          </div>
          <div class="card-source">来源: 2.1 索引级别的权限控制</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">什么是文档级别安全（Document-level security）？请举例说明其应用场景。</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">文档级别安全是一种通过查询DSL配置，只允许用户访问符合特定条件的文档的机制。一个典型的应用场景是，在共享索引中，一个租户的用户通过一个包含 `"term": { "tenant_id": "tenant1" }` 的查询，被限制为只能看到属于自己组织的文档。</div>
          </div>
          <div class="card-source">来源: 2.2 字段级别和文档级别安全</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">Kibana中的“空间（Spaces）”功能在多租户场景下起到了什么作用？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">“空间（Spaces）”用于在Kibana中将不同租户的数据和资源（如索引模式、仪表盘、可视化组件）隔离开来。通过为每个租户创建独立的空间，可以提供一个独立的工作环境，从而避免配置冲突和数据泄漏。</div>
          </div>
          <div class="card-source">来源: 2.3 空间（Spaces）</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">在保障多租户环境的安全与合规方面，审计日志（Audit Logs）扮演了什么关键角色？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">审计日志记录了用户和角色的访问日志、操作日志等详细信息。这使得管理员能够监控用户活动，及时发现潜在的安全问题或异常行为，是保障安全和合规的关键组件。</div>
          </div>
          <div class="card-source">来源: 2.4 监控和审计功能</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">Elasticsearch如何确保数据在传输过程和静态存储时的安全性？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">为了确保数据安全，Elasticsearch提供了两种机制：1. 传输层加密（TLS），用于加密节点之间以及客户端与集群之间的通信，防止数据在传输中被窃听；2. 磁盘加密，用于保护存储在磁盘上的静态数据，防止未经授权的访问。</div>
          </div>
          <div class="card-source">来源: 2.5 数据加密和传输安全</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">Elasticsearch实现多租户隔离和安全控制的核心机制有哪些？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">核心机制主要包括索引级别的权限控制、角色管理、访问控制列表 (ACL)、字段级别和文档级别安全、Kibana空间（Spaces）、审计功能以及数据加密等。</div>
          </div>
          <div class="card-source">来源: 文档开头第一段及章节 2 的概述</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">什么是字段级别安全（Field-level security）？它解决了什么问题？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">字段级别安全允许管理员为用户或角色配置只能访问文档中特定字段的权限。它解决了在共享数据时需要对敏感信息进行保护的问题，例如，允许用户查看客户的姓名和邮件，但隐藏其社会安全号码等敏感字段。</div>
          </div>
          <div class="card-source">来源: 2.2 字段级别和文档级别安全</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">Kibana中的“空间”是如何与Elasticsearch的安全机制集成的？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">Kibana中的“空间”可以与Elasticsearch的安全机制（如用户和角色）进行集成。管理员可以基于用户或角色对不同的空间进行访问控制，从而确保用户只能访问其被授权进入的空间。</div>
          </div>
          <div class="card-source">来源: 2.3 空间（Spaces）</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
